﻿namespace NTLib.Core.Configuration.Values
{
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;

    /// <summary>
    /// Implement a key value pair for the configuration value process
    /// </summary>
    /// <typeparam name="V">Type of the value</typeparam>
    /// <seealso cref="NTLib.Core.Configuration.ConfigValue" />
    public class ConfigKeyValue<V> : ConfigValue
    {
        #region Properties

        /// <summary>
        /// Gets the original key.
        /// </summary>
        public string OriginalKey { get; }

        /// <summary>
        /// Gets the value.
        /// </summary>
        public V Value { get; }

        #endregion

        #region Ctor

        /// <summary>
        /// Initializes a new instance of the <see cref="ConfigKeyValue{K, V}" /> class.
        /// </summary>
        /// <param name="key">The key.</param>
        /// <param name="value">The value.</param>
        public ConfigKeyValue(string key, V value)
            : base (key)
        {
            this.OriginalKey = key;
            this.Value = value;
        }

        #endregion
    }
}
